<!DOCTYPE HTML>
<html>
<head>
<title>StringMid | AutoHotkey</title>
<meta name="description" content="The StringMid command retrieves one or more characters from the specified position in a string." />
<meta name="ahk:equiv-v2" content="commands/SubStr.htm" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script>
</head>
<body>

<h1>StringMid</h1>

<p>从字符串的指定位置提取一个或多个字符.</p>

<p class="warning"><strong>不推荐:</strong> 不推荐在新脚本中使用此命令. 使用 <a href="SubStr.htm">SubStr</a> 函数作为代替.</p>

<pre class="Syntax"><span class="func">StringMid</span>, OutputVar, InputVar, StartChar <span class="optional">, Count, L</span></pre>
<h2>参数</h2>
<dl>

  <dt>OutputVar</dt>
  <dd><p>用来存储从 <em>InputVar</em> 提取的子字符串的变量名.</p></dd>

  <dt>InputVar</dt>
  <dd><p>需要被提取子字符串的变量名. 不要把名称括在百分号中, 除非您希望使用变量的 <em>内容</em> 作为被解析的变量名.</p></dd>

  <dt>StartChar</dt>
  <dd><p>需提取的首个字符的位置, 可以为<a href="../Variables.htm#Expressions">表达式</a>. 与 <a href="StringGetPos.htm">StringGetPos</a> 不同, 首个字符的位置为 1. 如果 <em>StartChar</em> 小于 1, 那么它将被视为 1. 如果 <em>StartChar</em> 超过了字符串的长度, 则 <em>OutputVar</em> 会被置空.</p></dd>

  <dt>Count</dt>
  <dd><p><span class="ver">[v1.0.43.10+]</span>: 此参数可以省略或留空, 这等同于指定一个足够大的整数, 以从字符串中获取所有字符.</p>
      <p>否则, 请指定需提取的字符数, 可以为<a href="../Variables.htm#Expressions">表达式</a>. 如果 <em>Count</em> 小于或等于零, 那么 <em>OutputVar</em> 会被置空. 如果 <em>Count</em> 超过了 <em>InputVar</em> 中从 <em>StartChar</em> 开始计算的长度, 那么 <em>OutputVar</em> 会被置为 <em>InputVar</em> 中从 <em>StartChar</em> 开始的所有字符.</p></dd>

  <dt>L</dt>
  <dd><p>使用字母 L 可以从 <em>StartChar</em> 开始往左边提取字符而不是右边. 在后面的例子中, <em>OutputVar</em> 会被置为 <em>Red</em>:</p>
<pre>InputVar := "The Red Fox"
StringMid, OutputVar, InputVar, 7, 3, L</pre>
    <p>如果使用了 L 选项且 <em>StartChar</em> 小于 1, 那么 <em>OutputVar</em> 会被置空. 如果 <em>StartChar</em> 超过了 <em>InputVar</em> 的长度, 那么只会提取在 <em>Count</em> 内的那些字符. 例如, 下面的例子会把 <em>OutputVar</em> 设置为 <em>Fox</em>:</p>
<pre>InputVar := "The Red Fox"
StringMid, OutputVar, InputVar, 14, 6, L</pre>
</dd>

</dl>

<h2>备注</h2>
<p>在这个及其他所有命令中, <em>OutputVar</em> 和 <em>InputVar</em> 中可以使用相同的变量.</p>
<h2>相关</h2>
<p><a href="SubStr.htm">SubStr()</a>, <a href="StringLeft.htm">StringLeft</a>, <a href="StringLeft.htm">StringRight</a>, <a href="StringTrimLeft.htm">StringTrimLeft</a>, <a href="StringTrimLeft.htm">StringTrimRight</a>, <a href="IfInString.htm">IfInString</a>, <a href="StringGetPos.htm">StringGetPos</a>, <a href="StringLen.htm">StrLen() / StringLen</a>, <a href="StringLower.htm">StringLower</a>, <a href="StringLower.htm">StringUpper</a>, <a href="StringReplace.htm">StringReplace</a></p>
<h2>示例</h2>
<div class="ex" id="ExBasic">
<p><a href="#ExBasic">#1</a></p>
<pre>Source := "Hello this is a test."
StringMid, the_word_this, Source, 7, 4</pre>
</div>

</body>
</html>